#include "gstreamer_1.h"

void play(int argc, char *argv[])
{
    GstElement * pipeline;
    GstBus * bus;
    GstMessage * message;

    gst_init(&argc, &argv);

    pipeline = gst_parse_launch("playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm", nullptr);

    gst_element_set_state(pipeline, GST_STATE_PLAYING);

    bus = gst_element_get_bus(pipeline);
    message = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, (GstMessageType)(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));

    if(GST_MESSAGE_TYPE(message) == GST_MESSAGE_ERROR) {
        g_error("error");
    }

    gst_message_unref(message);
    gst_object_unref(bus);
    gst_element_set_state(pipeline, GST_STATE_NULL);
    gst_object_unref(pipeline);
}
